﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL;
using System.Data.Linq;
using System.Data.SqlClient;
using Website.Logger;
using UtilityExtensions;
using System.Web.Script.Services;
using System.Web.Services;
using BOL;
using UtilityExtensions;
using BOL.Cliente;

namespace UILGestion.VentaAdmin.OrdenVenta
{
    public partial class OrdenVentaListForm : System.Web.UI.Page
    {

        [WebMethod(), ScriptMethod()]
        public static string GetCliente(String prefixText, String contextKey)
        {
            var p = (from a in DbUtil.Db.OrdenVentas
                     where (a.Cliente.descripcion).Contains(prefixText)
                      & a.idProyecto == contextKey.ToInt()
                     select new ClienteSearchInfo
                     {
                         idInternal = a.Cliente.idInternal,
                         descripcion = a.Cliente.descripcion,
                         numDocumento = a.Cliente.numDocumento,
                         correo = a.Cliente.email,
                         direccion = a.Cliente.Direccion.descripcion,
                         telefono = a.Cliente.telefono,
                         tipoDocumento = a.Cliente.TipoDocumento.abreviacion,
                         vista = String.Format("{0}:{1} {2}", a.Cliente.TipoDocumento.abreviacion, a.Cliente.numDocumento, a.Cliente.descripcion),
                     }).Distinct().Take(35);





            return Util.Tbl2Str(Util.EntidadToDataTable(p.ToList()));

        }

        protected void Page_Load(object sender, EventArgs e)
        {

            clienteTXT.ChkVal = (string)Request.QueryString["idProyecto"];
            if (!Page.IsPostBack)
            {

                try
                {

                    
                    idProyecto.Value = (string)Request.QueryString["idProyecto"];
                    //paginaAnt.Value = Page.Request.UrlReferrer.AbsoluteUri;
                    menuCtrl1.loadMenuVenta(idProyecto.Value.ToInt());
                    FormatForm();


                }
                catch (SqlException sqlex)
                {
                    WebServerSideSqlError.Log(sqlex);
                    ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                     "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


                }
                catch (Exception ex)
                {
                    WebServerSideError.Log(ex);
                    ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                     "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

                }


            }
        }

        private void FormatForm()
        {
           
            ShowAllComboBox();

            

        }
        protected void ShowAllComboBox()
        {
            ListValueInfo todosCol = new ListValueInfo();
            todosCol.descripcion = "--------Todos---------";
            todosCol.idInternal = 0;

            ListValueInfo todosSepVen = new ListValueInfo();
            todosSepVen.descripcion = "-SEPARADO y VENDIDOS-";
            todosSepVen.idInternal = -1;

            
            estadoDDL.DataValueField = "idInternal";
            estadoDDL.DataTextField = "descripcion";

            etapaDDL.DataValueField = "idInternal";
            etapaDDL.DataTextField = "descripcion";


            tipoViviendaDDL.DataValueField = "idInternal";
            tipoViviendaDDL.DataTextField = "descripcion";

            var v = new BOL.ListValueBL().GetTipoUI(idProyecto.Value.ToInt());
            v.Insert(0, todosCol);
            tipoViviendaDDL.DataSource = v;
            tipoViviendaDDL.DataBind();
           
            var listas = new ListValueBL();

            var e = new BOL.ListValueBL().GetEtapaVentaXProyecto(idProyecto.Value.ToInt()).ToList();
            e.Insert(0, todosCol);

            var f = new BOL.ListValueBL().GetEstadoOrdenVenta();
            f.Insert(0, todosCol);

            f.Add(todosSepVen);
            
            etapaDDL.DataSource = e;
            etapaDDL.DataBind();

            estadoDDL.DataSource = f;
            estadoDDL.DataBind();

            DateTime fechainicio= DbUtil.Db.OrdenVentas.Where(p => p.idProyecto == idProyecto.Value.ToInt()).Count() > 0 ? DbUtil.Db.OrdenVentas.Where(p => p.idProyecto == idProyecto.Value.ToInt()).Min(p => p.fecha) : DateTime.Now;


            fechaInicioTXT.Text = fechainicio.ToShortDateString();
            fechaFinTXT.Text = DateTime.Now.ToShortDateString();

            
        }


        protected void button(object sender, EventArgs e)
        {
            try
            {
                //if (((Button)sender).ID == BuscarBtn.ID)
                //{
                //    proyectoListGrid1.DataBind();
                //}
                if (((Button)sender).ID == nuevaVentaButton.ID)
                {
                    Response.Redirect("OrdenVentaEditForm.aspx?type=A&idProyecto={0}".Fmt(idProyecto.Value), true);
                }

                
            }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

            }
             
        }
       
    }
}